﻿using System;

namespace CeA.Reports.Atendimento.DataAccess.Helpers {
    public class ConvertHelper {
        public static string ToString(int[] array) {
            string[] stringArray = Array.ConvertAll<int, string>(array, new Converter<int, string>(ConvertIntToString));
            string result = string.Join(",", stringArray);
            return result;
        }

        /// <summary>
        /// Converte a hora informada para segundos.
        /// </summary>
        /// <param name="hour">Hora no formato hh:mm:ss. Ex: 27:30:28</param>
        /// <returns>Qunatidade de seguntos que representa a hora informada.</returns>
        public static int HourToSecond(string hour) {
            string[] pieces = hour.Split(':');

            int hor = Convert.ToInt32(pieces[0]);
            int min = Convert.ToInt32(pieces[1]);
            int sec = Convert.ToInt32(pieces[2]);

            return (hor * 3600) + (min * 60) + (sec * 1);
        }


        public static string SecondToHour(int numSegundo) {
            string horaConvertida = null;
            string hora = null;
            string minuto = null;
            string segundo = null;

            if (numSegundo > 0)
            {
                //verifica se o valor tem hora
                if (numSegundo >= 3600) {
                    hora = (numSegundo / 3600).ToString();
                }else{
                    hora = "00";
                }
                //verifica minuto
                if ((numSegundo % 3600) >= 60) {
                    minuto = ((numSegundo % 3600) / 60).ToString();
                } else {
                    minuto = "00";
                }
                //verifica segundo
                segundo = ((numSegundo % 3600) % 60).ToString();
            }
            else {
                hora = "00";
                minuto = "00";
                segundo = "00";
            }
            if (hora.Length < 2) hora = "0" + hora;
            if (minuto.Length < 2) minuto = "0" + minuto;
            if (segundo.Length < 2) segundo = "0" + segundo;

            horaConvertida = hora + ":" + minuto + ":" + segundo;
            
            return horaConvertida;
        
        }
        
        private static string ConvertIntToString(int param) {
            return param.ToString();
        }


    }
}
